1. Field of the Invention
The invention relates to a memory system for non-volatile data storage and, more particularly, to a memory system that uses reference levels for reading data stored in a multi-state format.
2. Description of the Related Art
Memory cards are commonly used to store digital data for use with various products (e.g., electronic products). Examples of memory cards are flash cards that use Flash type or EEPROM type memory cells to store the data. Flash cards have a relatively small form factor and have been used to store digital data for products such as cameras, hand-held computers, set-top boxes, hand-held or other small audio players/recorders (e.g., MP3 devices), and medical monitors. A major supplier of flash cards is SanDisk Corporation of Sunnyvale, Calif.
These memory cards are increasingly called on to store greater and greater amounts of data. Consequently, individual storage elements within these memory cards have been developed to support multiple levels so as to effectively store multiple bits of data. Traditional storage elements store only two states, while multiple level or high density storage elements store more than two states (e.g., four states). For example, individual storage elements two states, while multiple level or high density storage elements store more than two states (e.g., four states). For example, individual storage elements in some of today""s multiple-level memory cards can store four (4) levels and thus effectively enable a single storage element to act as two (2) bits of data. While these multiple levels allow a memory array to store substantially greater amounts of data without a corresponding increase in size or cost, it is more difficult to read stored data out of the memory array.
Non-volatile memories are very popular and useful because they retain data even after being powered-off. However, the charge retention of non-volatile memories is not perfect. Consequently, after programming a memory cell, the memory cell""s voltage can drift up or down depending upon various influences such as applied bias voltages, electromagnetic fields generated in the memory device, and charge trapped in dielectrics of the memory device.
When non-volatile memories support multi-states in each storage element, referred to as a multi-state memory, reference levels are needed to help distinguish between the states when reading data from the memory cells. Conventionally, reference cells have been used within the memory device to store global reference voltages that can be programmed at the factory or written before or with the user cells. However, the ability to retrieve these reference voltages in a precise manner is difficult due to threshold voltage/current distributions among written tracking storage units. The distributions can be due to variation in initial written threshold/current; voltage disturbs; physical variations which result in varied environmental sensitivity; and charge loss from built-in electric or magnetic fields. In any case, the result is an increased probability of error during read operations.
Thus, there is a need for improved approaches to reliably store and acquire reference levels so that states (logic levels) of multi-state memory cells can be reliably retrieved over the life of the memory device.
Broadly speaking, the invention relates to a memory system (e.g., memory card) having error management for stored levels (e.g., reference levels) used in discrimination of logic levels for data storage units providing data storage. The stored levels can be stored in predetermined storage units (e.g., writable tracking storage units) in the memory system. The memory system is typically a non-volatile memory product or device that provides binary or multi-state data storage.
The invention can be implemented in numerous ways. For example, the invention can be implemented as a system, device or method. Several embodiments of the invention are discussed below.
As a method for determining discrimination levels for states of storage units of a memory product, one embodiment of the invention includes at least the acts of: reading stored levels from a plurality of predetermined storage units; determining whether any of the stored levels are aberrant; correcting for at least one of the stored levels that the determining determines to be aberrant; and determining one or more discrimination levels based on the stored levels.
As a method for managing errors associated with tracking storage units used with data storage units in a memory device, one embodiment of the invention includes at least the acts of: reading reference levels from a plurality of tracking storage units; evaluating a quality for each of the reference levels; determining whether the quality for any of the reference levels is unacceptable; correcting for at least one of the reference levels that the determining determines to be unacceptable; and determining discrimination levels for data storage units associated with the tracking storage units based on the reference levels.
As a method for reading data from a memory device having data storage units and associated tracking storage units, one embodiment of the invention includes at least the acts of: substantially concurrently reading data levels from certain data storage units and reference levels from tracking storage units associated with the certain data storage units; computing a processed reference level from the reference levels; determining state discrimination levels based on the processed reference level; discriminating states of the data levels from the certain data storage units based on the state discrimination levels to acquire read data for a requester; evaluating, substantially concurrently with the discriminating, quality of the reference levels; determining whether the quality of the reference levels is acceptable; directing the read data to the requester when the determining determines that the quality of the reference levels is acceptable; and correcting for at least one of the reference levels when the determining determines that the quality of the reference levels is unacceptable.
As a method for reading data from a memory device having data storage units and associated tracking storage units, another embodiment of the invention includes at least the acts of: substantially concurrently reading data levels from certain data storage units and reference levels from tracking storage units associated with the certain data storage units; computing a processed reference level from the reference levels; determining state discrimination levels based on the processed reference level; discriminating states of the data levels from the certain data storage units based on the state discrimination levels to acquire read data for a requester; evaluating quality of the reference levels; determining whether the quality of the reference levels is acceptable; sending the read data to the requester when the determining determines that the quality of the reference levels is acceptable; halting the sending when the determining determines that the quality of the reference levels is unacceptable; and correcting for at least one of the reference levels when the determining determines that the quality of the reference levels is unacceptable.
As a method for reading data from a memory device having data storage units and associated tracking storage units, another embodiment of the invention includes at least the acts of: substantially concurrently reading data levels from certain data storage units and reference levels from tracking storage units associated with the certain data storage units; computing a processed reference level from the reference levels; determining state discrimination levels based on the processed reference level; discriminating states of the data levels from the certain data storage units based on the state discrimination levels to acquire read data for a requester; evaluating quality of the reference levels; determining whether the quality of the reference levels is acceptable; sending the read data to the requester when said determining determines that the quality of the reference levels is acceptable; canceling the read data that has been received by the requester when said determining determines that the quality of the reference levels is unacceptable; and correcting for at least one of the reference levels when said determining determines that the quality of the reference levels is unacceptable.
As a method for reading data from a memory device having data storage units and associated tracking storage units, another embodiment of the invention includes at least the acts of: initiating a count; reading data levels from certain data storage units and reference levels from tracking storage units associated with the certain data storage units; computing a processed reference level from the reference levels; determining state discrimination levels based on the processed reference level; discriminating states of the data levels from the certain data storage units based on the state discrimination levels to acquire read data for a requester; evaluating quality of the reference levels; determining whether the quality of the reference levels is acceptable; comparing the count with a count limit; correcting for at least one of the reference levels when it is determined that the quality of the reference levels is unacceptable and that the count does not exceed the count limit; updating the count; repeating at least the computing through comparing acts one or more times when it is determined that the quality of the reference levels is unacceptable and that the count does not exceed the count limit; and directing the read data to the requester when it is determined that the quality of the reference levels is acceptable or that the count does exceed the count limit.
As a memory system, one embodiment of the invention includes at least: a plurality of data storage units that provide multi-state data storage in a non-volatile manner, a plurality of tracking storage units that provide storage for reference levels in a non-volatile manner, a reference level error manager that evaluates quality of the reference levels, and a memory controller that controls read, write and erase operations with respect to the data storage units and the tracking storage units. The memory controller uses state discrimination levels to determine the state of the data storage elements being read. The memory system may also include state discrimination level circuitry to determine the state discrimination levels for use by the memory controller based on a plurality of the reference levels.
Other aspects and advantages of the invention will become apparent from the following detailed description taken in conjunction with the accompanying drawings which illustrate, by way of example, the principles of the invention.